package com.tdam2011.grupo06;

import java.util.ArrayList;

import com.tdam2011.grupo06.Principal.Contacto;
import com.tdam2011.grupo06.Principal.ContactoAdapter;
import com.tdam2011.grupo06.Principal.Holder;

import android.os.Bundle;
import android.app.Activity;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.graphics.Color;
import android.widget.Button;

public class EnvioWebService extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_envio_web_service);
        
        Button button = (Button) findViewById(R.id.button1);

        button.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
        // TODO Auto-generated method stub
        crearDialogoAlerta().show();
        }
        });
        
        ListView lv = (ListView)findViewById(R.id.listaChat);           
        MensajeAdapter adapter = new MensajeAdapter(crearMensajes());             
        lv.setAdapter(adapter); 
    }
    private Dialog crearDialogoAlerta()
    {
	    AlertDialog.Builder builder = new AlertDialog.Builder(this);
	
	
	    builder.setTitle("Error");
	    builder.setMessage("No se pudo enviar el mensaje");
	    builder.setPositiveButton("Aceptar", new OnClickListener() {
	
	    public void onClick(DialogInterface dialog, int which) {
	    // TODO Auto-generated method stub
	    dialog.cancel();
	    }
    });

    return builder.create();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_envio_web_service, menu);
        return true;
    }
    private ArrayList<Mensaje> crearMensajes() {
        ArrayList<Mensaje> mensajes = new ArrayList<Mensaje>();
             
        mensajes.add(new Mensaje("Hola que tal", true));
        mensajes.add(new Mensaje("Hola marcos", false));
        mensajes.add(new Mensaje("A que hora salis de la facu?", true));
        mensajes.add(new Mensaje("Yo salgo a las 9", true));
        mensajes.add(new Mensaje("Mmm hoy tengo clase hasta las 10 creo", false));
        mensajes.add(new Mensaje("Ah bueno, dps nos vemos entonces", true));
        mensajes.add(new Mensaje("Dale, abrazo", false));

        
        return mensajes;
      }
    class Mensaje{
    	protected String mensaje;
    	protected Boolean enviado;
    	
    	public Mensaje(String mensaje, Boolean enviado){
    		this.mensaje=mensaje;
    		this.enviado = enviado;
    	}
    	
    	public String getMensaje(){
    		return this.mensaje;
    	}
    	
    	public void setMensaje(String mensaje){
    		this.mensaje = mensaje;
    	}
    	
    	public Boolean getEnviado(){
    		return this.enviado;
    	}
    	
    	public void setEnviado(Boolean enviado){
    		this.enviado = enviado;
    	}
    }
    
    class Holder{
    	EditText txtMensaje;
    }
    
    class MensajeAdapter extends BaseAdapter{

    	private ArrayList<Mensaje> _mensajes;
		private LayoutInflater _inflater;
		
		public MensajeAdapter(ArrayList<Mensaje> mensajes){
			_mensajes = mensajes;
			_inflater = LayoutInflater.from(EnvioWebService.this);
		}
		
		public Mensaje getMensaje(int position) {
			Mensaje mensaje = (Mensaje) getItem(position);
			return mensaje;
		}
		
		public int getCount() {
			// TODO Auto-generated method stub
			return _mensajes.size();
		}

		public Object getItem(int position) {
			// TODO Auto-generated method stub
			return _mensajes.get(position);
		}

		public long getItemId(int position) {
			// TODO Auto-generated method stub
			return position;
		}

		public View getView(int position, View convertView, ViewGroup parent) {
			// TODO Auto-generated method stub
	         
			Holder holder = null;
			if (convertView == null) {
				convertView = _inflater.inflate(R.layout.chat_item, null);
				holder = new Holder();
				
				holder.txtMensaje = (EditText) convertView
						.findViewById(R.id.editTextChat);
				
				convertView.setTag(holder);
			} else {
				holder = (Holder) convertView.getTag();
			}

			Mensaje mensaje = _mensajes.get(position);

			holder.txtMensaje.setText(mensaje.getMensaje());
			if (mensaje.getEnviado()){
				holder.txtMensaje.setBackgroundColor(Color.WHITE);
				holder.txtMensaje.setGravity(Gravity.LEFT);
			}
			else{
				holder.txtMensaje.setBackgroundColor(Color.LTGRAY);
				holder.txtMensaje.setGravity(Gravity.RIGHT);
			}

			return convertView;
		}
	}
}
